home *** CD-ROM | disk | FTP | other *** search
/ Acorn RISC PD-CD 1 / Acorn RISC PD-CD 1.iso / languages / dde / _pc / h / print < prev    next >
Text File  |  1992-04-30  |  12KB  |  298 lines

  1. (*
  2.  * Title: print.h
  3.  * Purpose: access to printer driver facilities
  4.  *
  5.  *)
  6.  
  7. #ifndef print__h
  8. #define print__h
  9.  
  10. const
  11.   print_PostScript     = 0;
  12.   print_FX80compatible = 1;
  13.  
  14. type print_identity_ptr = ^print_identity;
  15.      print_identity = integer;
  16.  
  17.  
  18. const
  19.   print_colour      = $0000001;    (* colour                               *)
  20.   print_limited     = $0000002;    (* if print_COLOUR bit set, full colour *)
  21.                                    (* range not available                  *)
  22.   print_discrete    = $0000004;    (* only a discrete colour set supported *)
  23.  
  24.   print_NOFILL      = $0000100;    (* cannot handle filled shapes well     *)
  25.   print_NOTHICKNESS = $0000200;    (* cannot handle thick lines well       *)
  26.   print_NOOVERWRITE = $0000400;    (* cannot overwrite colours properly    *)
  27.  
  28. (* const print_SCREENDUMP clashes with function print_screendump *)
  29. #define print_SCREENDUMP $1000000  (* supports PDriver_ScreenDump          *)
  30.   print_TRANSFORM   = $2000000;    (* supports arbitrary transformations   *)
  31.                                    (* (else only axis-preserving ones).    *)
  32. type print_features_ptr = ^print_features;
  33.      print_features = integer;
  34.  
  35.  
  36. type print_infostr_ptr = ^print_infostr;
  37.      print_infostr =
  38.        record
  39.          version : short;        (* version number *100                   *)
  40.          identity : short;   (* driver identity (eg 0=Postscript,1=FX80)  *)
  41.          xres, yres : integer;   (* x, y resolution (pixels/inch)         *)
  42.          features : integer;     (* see print_features                    *)
  43.          description : string;   (* printers supported, <=20chars + null  *)
  44.          xhalf, yhalf : integer; (* halftone resolution (repeats/inch)    *)
  45.          number : integer        (* configured printer number             *)
  46.        end;
  47.  
  48.  
  49. type print_box_ptr = ^print_box;
  50.      print_box =
  51.        record
  52.          x0, y0, x1, y1 : integer
  53.        end;
  54.  
  55.  
  56. type print_pagesizestr_ptr = ^print_pagesizestr;
  57.      print_pagesizestr =
  58.        record
  59.          xsize, ysize : integer;
  60.                       (* size of page, including margins (1/72000 inch)   *)
  61.          bbox : print_box
  62.                       (* bounding box of printable portion (1/72000 inch) *)
  63.        end;
  64.  
  65.  
  66. type print_transmatstr_ptr = ^print_transmatstr;
  67.      print_transmatstr =
  68.        record
  69.          xx, xy, yx, yy : integer
  70.        end;
  71.  
  72. type print_positionstr_ptr = ^print_positionstr;
  73.      print_positionstr =
  74.        record
  75.          dx, dy : integer
  76.        end;
  77.  
  78. (* ----------------------------- print_info ----------------------------
  79.  * Description:  Read details of current printer driver (version, 
  80.  *               resolution, features etc).
  81.  *               
  82.  * Parameters:   Pointer to print_infostr structure to be filled in.
  83.  * Returns:      Any error returned from the system call.
  84.  * Other Info:   none.
  85.  *)
  86. function print_info(i : print_infostr_ptr) : error; extern;
  87.  
  88.  
  89. (* ----------------------------- print_setinfo -------------------------
  90.  * Description:  Reconfigure current printer driver.
  91.  *               
  92.  * Parameters:   Pointer to the print_infostr structure to be used to 
  93.  *               update the printer driver configuration.
  94.  * Returns:      Any error returned from the system call.
  95.  * Other Info:   The version, identity and description fields are not 
  96.  *               used. Leave bit 0 clear in the features field for 
  97.  *               monochrome, set bit 0 for colour.
  98.  *)
  99. function print_setinfo(i : print_infostr_ptr) : error; extern;
  100.  
  101.  
  102. (* ----------------------------- print_checkfeatures -------------------
  103.  * Description:  Checks the features of a printer, returning an error if 
  104.  *               the current printer does not have the specified 
  105.  *               features.
  106.  *               
  107.  * Parameters:   int mask  -- set bits correspond to the features
  108.  *                            of interest (bits as print_features)
  109.  *               int value -- required values of the bits of interest
  110.  * Returns:      Any error returned from the system call.
  111.  * Other Info:   none.
  112.  *)
  113. function print_checkfeatures(mask, value : integer) : error; extern;
  114.  
  115.  
  116. (* ----------------------------- print_pagesize ------------------------
  117.  * Description:  Find how large paper and print area is.
  118.  *               
  119.  * Parameters:   Pointer to the print_pagesizestr structure to be
  120.  *               filled in.
  121.  * Returns:      Any error returned from the system call.
  122.  * Other Info:   none.
  123.  *)
  124. function print_pagesize(p : print_pagesizestr_ptr) : error; extern;
  125.  
  126.  
  127. (* ----------------------------- print_setpagesize ---------------------
  128.  * Description:  Set how large paper and print size is.
  129.  *               
  130.  * Parameters:   Pointer to the print_pagesizestr structure to be
  131.  *               used to update the printer driver.
  132.  * Returns:      Any error returned from the system call.
  133.  * Other Info:   none.
  134.  *)
  135. function print_setpagesize(p : print_pagesizestr_ptr) : error; extern;
  136.  
  137.  
  138. (* ----------------------------- print_selectjob -----------------------
  139.  * Description:  Make a given print job the current one.
  140.  *               
  141.  * Parameters:   int job      -- file handle for selected job, or 0
  142.  *                               to leave no print job selected
  143.  *               char *title  -- title string for job
  144.  *               int *oldjobp -- pointer to integer to fill in with
  145.  *                               file handle of previously active job
  146.  * Returns:      Any error returned from the system call.
  147.  * Other Info:   none.
  148.  *)
  149. function print_selectjob(job : integer;
  150.                 title : string;
  151.                 var oldjobp : integer) : error; extern;
  152.  
  153.  
  154. (* ----------------------------- print_currentjob ----------------------
  155.  * Description:  Get the file handle of the current print job.
  156.  *               
  157.  * Parameters:   Pointer to integer to be filled in with the
  158.  *               file handle of the current print job.
  159.  * Returns:      Any error returned from the system call.
  160.  * Other Info:   none.
  161.  *)
  162. function print_currentjob(var curjobp : integer) : error; extern;
  163.  
  164.  
  165. (* ----------------------------- print_endjob --------------------------
  166.  * Description:  End a print job normally.
  167.  *               
  168.  * Parameters:   File handle of print job to be ended.
  169.  * Returns:      Any error returned from the system call.
  170.  * Other Info:   none.
  171.  *)
  172. function print_endjob(job : integer) : error; extern;
  173.  
  174.  
  175. (* ----------------------------- print_abortjob ------------------------
  176.  * Description:  End a print job without any further output.
  177.  *               
  178.  * Parameters:   File handle of print job to be aborted.
  179.  * Returns:      Any error returned from the system call.
  180.  * Other Info:   none.
  181.  *)
  182. function print_abortjob(job : integer) : error; extern;
  183.  
  184.  
  185. (* ----------------------------- print_canceljob -----------------------
  186.  * Description:  Stops a specified print job from printing.
  187.  *               
  188.  * Parameters:   File handle of print job to be cancelled.
  189.  * Returns:      Any error returned from the system call.
  190.  * Other Info:   none.
  191.  *)
  192. function print_canceljob(job : integer) : error; extern;
  193.  
  194.  
  195. (* ----------------------------- print_reset ---------------------------
  196.  * Description:  Abort all print jobs.
  197.  *               
  198.  * Parameters:   void
  199.  * Returns:      Any error returned from the system call.
  200.  * Other Info:   none.
  201.  *)
  202. function print_reset : error; extern;
  203.  
  204. (* ----------------------------- print_selectillustration --------------
  205.  * Description:  Makes the specified print job the current one, 
  206.  *               and treats it as an illustration.
  207.  *               
  208.  * Parameters:   int job      -- file handle for selected job, or 0
  209.  *                               to leave no print job selected
  210.  *               char *title  -- title string for job
  211.  *               int *oldjobp -- pointer to integer to fill in with
  212.  *                               file handle of previously active job
  213.  * Returns:      Any error returned from the system call.
  214.  * Other Info:   The difference with print_selectjob is that an 
  215.  *               error is generated if the job does not contain 
  216.  *               one page, and certain printer drivers (such as 
  217.  *               the PostScript printer driver) generate 
  218.  *               different output for illustrations.
  219.  *)
  220. function print_selectillustration(job : integer;
  221.                 title : string;
  222.                 var oldjobp : integer) : error; extern;
  223.  
  224.  
  225. (* ----------------------------- print_giverectangle -------------------
  226.  * Description:  Specify a rectangle to be printed.
  227.  *               
  228.  * Parameters:   ident -- rectangle identification word
  229.  *               Pointer to structure specifying rectangle to be
  230.  *                   plotted (OS coordinates)
  231.  *               Pointer to structure specifying transformation
  232.  *                   matrix (fixed point, 16 binary places)
  233.  *               Pointer to structure containing  the position of
  234.  *                   bottom left of rectangle on page (1/72000 inch)
  235.  *               bgcol -- background colour for this rectangle, &BBGGRRXX
  236.  * Returns:      Any error returned from the system call.
  237.  * Other Info:   none.
  238.  *)
  239. function print_giverectangle(ident : integer;
  240.                 r : print_box_ptr;
  241.                 m : print_transmatstr_ptr;
  242.                 p : print_positionstr_ptr) : error; extern;
  243.  
  244.  
  245. (* ----------------------------- print_drawpage ------------------------
  246.  * Description:  This should be called after specifying all rectangles 
  247.  *               to be plotted on the current page with 
  248.  *               print_giverectangle.
  249.  *               
  250.  * Parameters:   copies -- number of copies
  251.  *               sequ   -- zero or pages sequence number within document
  252.  *               page   -- zero or a string containing a textual page number
  253.  *                         (no spaces)
  254.  *               Pointer to structure to be filled in with the rectangle 
  255.  *               to print
  256.  *               more   -- pointer to integer to be filled in with the 
  257.  *                         number of copies left to print
  258.  *               ident  -- pointer to integer to be filled in with the 
  259.  *                         rectangle identification word
  260.  * Returns:      Any error returned from the system call.
  261.  * Other Info:   none.
  262.  *)
  263. function print_drawpage(copies : integer;
  264.                 sequ : integer;
  265.                 page : string;
  266.                 clip : print_box_ptr;
  267.                 var more : integer;
  268.                 var ident : integer) : error; extern;
  269.  
  270.  
  271. (* ----------------------------- print_getrectangle --------------------
  272.  * Description:  Get the next print rectangle.
  273.  *               
  274.  * Parameters:   Pointer to the structure to be filled in with the clip
  275.  *                   rectangle
  276.  *               more  -- pointer to integer to be filled in with the number
  277.  *                        of rectangles left to print
  278.  *               ident -- pointer to integer to be filled in with the 
  279.  *                        rectangle identification word
  280.  * Returns:      Any error returned from the system call.
  281.  * Other Info:   none.
  282.  *)
  283. function print_getrectangle(clib : print_box_ptr;
  284.                 var more : integer;
  285.                 var ident : integer) : error; extern;
  286.  
  287.  
  288. (* ----------------------------- print_screendump ----------------------
  289.  * Description:  Output a screen dump to the printer.
  290.  *               
  291.  * Parameters:   File handle of file to receive the dump.
  292.  * Returns:      Any error returned from the system call.
  293.  * Other Info:   none.
  294.  *)
  295. function print_screendump(job : integer) : error; extern;
  296.  
  297. #endif
  298.